# DRF原则 don't repeat yourself  ==> 不要重复自己的代码，造成冗余
# 所以可以自定义函数 def function_name(para): 将需要重复使用的，进行包装
# 比如重复计算扇形面积 s = pi * r **2 * 圆角 / 360

def calculate_sector (central_angel, radius):
    # 第一句话可以用注释也可以用字符串，来表达函数的作用
    """该函数，用于计算提供了角度和边长的扇形面积"""
    pi = 3.14
    sector_area = pi * radius **2 * central_angel / 360
    print(f"此扇形面积是：{sector_area:.2f}")
    return sector_area  # return 返回值，可以将函数内需要的值返回，默认 return None

# 由于python是从上到下 一步步去运行的，所以先定义函数，在调用.
"""
写一个计算BMI的函数，函数名为 calculate_BMI
1.可以计算任意体重和身高的BMI值
2.执行过程中打印一句话，"您的BMI分类为:xx”
3.返回计算出的BMI值

BMI =体重/(身高 ** 2)

BMI分类
偏瘦:BMI <= 18.5
正常:18.5< BMI <= 25
偏胖:25< BMI <= 30
肥胖:BMI > 30
"""
def calculate_BMI(weight , height):
    """
    计算用户BMI，然后打印BMI分类
    :param weight: 体重
    :param height: 身高
    :return: BMI
    """
    bmi = weight / (height ** 2)
    if bmi <= 18.5 :
        bmi_type = "偏瘦"
    elif bmi <= 25:
        bmi_type = "正常"
    elif bmi <= 30:
        bmi_type = "偏胖"
    else :
        bmi_type = "肥胖"

    print(f"你的BMI数值是{bmi:.2f},类型属于：{bmi_type}")
    return bmi

user_BMI = calculate_BMI(72,1.7)
print(user_BMI)

# 函数要点总结：
"""
1.函数要先定义，再来调用
2.函数命名和变量命名一样，要有语义，便于了解
3。函数第一行默认填写相关信息，比如函数的作用，形参的意义。 
    自动填充的方法是三引号注释，然后换行上下，就会自动有了.
"""

# if 条件判断 要点添加 多重判断是 if elif else , 而不是 if (else if) else 这点和其他语言不一样
